深入理解 Java 中的转义符: \u000a\u0022 | 您所在的位置:网站首页 › unicode 特殊字符 › 深入理解 Java 中的转义符: \u000a\u0022 |
Java 对 Unicode 转义字符不会进行任何特殊的处理,只是简单的将其替换称相应的字符! 因此,在编写代码时,任何出现 Unicde 字符串的地方,都要额外注意,倍加小心,要知道 Java 词法是如何解析的?转移后的代码是否合法?逻辑上是否正确? Unicode 特殊字符含义\u000a换行符 \n\u007d{\u007b}\u0022"\u002b+示例一 : public void test(){ // 这是注释\u000a System.out.println("被注释的代码,不应该打印"); }执行上面的函数,会发现,被注释掉的代码竟然被执行了,因为 \u000a 出现在代码中,在词法解析时,此处发生了换行,而解析后得到的代码如下: public void test(){ // 这是注释 System.out.println("被注释的代码,不应该打印"); }因此,后面的代码会被执行。 示例二: public void test2(){ System.out.println("5 + 10 = \u0022+ (5+10) + \u0022"); }打印的信息为 5 + 10 = 15,因为字符串中添加了 unicode 字符,被解析后得到的真实函数如下: public void test2(){ System.out.println("5 + 10 = " + (5+10) + ""); }因此代码执行的结果会有所不同。 也正是因为如此,当字符串中出现 \u000a 时,会出现编译错误,报错的内容为: java: 未结束的字符串文字 或 illegal escape character in string literal 例如: public void test2(){ System.out.println("\u000a"); // 编译错误 } |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |